#ifndef EventGateway_H
#define EventGateway_H

#include "EventTrans.h"
#include <queue>

class EventOut
{
private:
    friend void* send(void*);
    std::queue<AbstractEvent> events;
    EventSender trans;
public:
    void start_send();
    ~EventOut(){}
    void send_msg(AbstractEvent&);
    static EventOut& getInstance();
protected:
    EventOut(){}

};

class EventIn
{
private:
    friend void* recv(void*);
    EventReceiver trans;
public:
    void start_recv();
    ~EventIn(){}
    static EventIn& getInstance();
protected:
    EventIn(){}
};


#endif
